1. Field of the Invention
The present invention relates to a policing apparatus in an ATM (Asynchronous Transfer Mode) network.
2. Description of the Related Art
In an ATM network using an ATM switching apparatus and an ATM local area network (LAN), a communication band which use is predicted is generally declared for every subscriber at the time of the joining contract in the subscriber system in which a subscriber is directly accommodated. The communication band is defined using the values such as a peak transmission rate of ATM cells and an average transmission rate thereof. When communication is started in the subscriber system, the traffic for every subscriber is monitored in accordance with the declaration value for every subscriber. Especially, when the transmission rate of the ATM cells sent out from the subscriber exceeds the declaration value, various processing is accomplished. For example, in a policing process, a part of the ATM cells sent out from the subscriber to exceed the declaration value is discarded. Also, in the tagging process, the priority level of the ATM cells is lowered, and the cell identification data is given to be primarily discarded when traffic jam is caused in the network.
The policing in a user network interface (UNI) as a subscriber interface of the ATM apparatus is also called usage parameter control (UPC). This policing process is the technique, which is necessary to prevent damage from extending to the other general subscriber in the form of cell; loss, when only a specific subscriber sends out ATM cells at the transmission rate more than the declaration value. In addition, the policing process, which is called a network parameter control (NPC), exists in a network node interface (NNI) in the network. This policing process will be explained using the UPC terminology in UNI. Also, various techniques are proposed about the technique, which measures the transmission rate of the specific ATM cells for the policing process.
However, in the conventional policing apparatus of the ATM network which has the conventional transmission rate measurement technique of the ATM cells, the following problems exist. Also, these techniques are not accomplished to the practical use due to various constraints.
The first problem in the conventional example is in the following point. That is, when a policing processing circuit is provided for every cell header identification data, i.e., in units of virtual pass identifier (VPI)/virtual channel identifier (VCI) of the ATM cell, the maximum number of policing processing circuits to be required become a huge value. For example, in case of the ATM cell in UNI, the number of circuits necessary at the maximum structure is 384,000 from the power for the number of bits of (VPI+VCI)=28xc3x97216=256xc3x9764 k=384,000.
When a memory is common to all ATM cells is used and is processed by a common circuit, the number of times of access to the common memory becomes necessary for the number of cell header identifiers. As a result, it has become a huge value. For example, in case of the ATM cells in UNI, it is necessary that access to the common memory is performed 384,000 times per one cell time, about 2.5 xcexc second in 155 Mlines at a maximum structure, from the power for the number of bits of (VPI+VCI)=28xc3x97216=256xc3x9764 k =384,000.
By the way, the conventional policing technique is mainly classified into two groups. That is, one is a cell count method which contains a fixed window system, a sliding window system, and a leaky bucket system, and the other is a time comparing method which contains a reception time (time stamp) comparing system, a cell reception interval comparing system.
In the cell count method, the number of reception cells or the difference between the number of reception cells and a predetermined value for a predetermined time interval (window) or continuously is determined. FIG. 1 shows a measurement example of ATM cell transmission rate in the fixed window system of the cell count method. In this example, a window size=5. As seen from the FIG. 1, there is a problem in that the large difference occurs to the cell count value based on an initial position of the window in case of the fixed window system. In this figure, the maximum value would be seen to be the cell count value=3. However, if the initial position is shifted in a front direction, the maximum value could be understood to be the cell count value=4.
Also, the transmission rate measurement is performed at the same time for a lot of ATM cells having different cell identification data (cell headers) in the fixed window system. In this case, it is necessary to perform the resetting operation of a counter and a reading operation of the count value at a time for all the ATM cells. Therefore, it is necessary that a lot of necessary counters for the number of cell identifiers are arranged and operated. Or, it is necessary that a counter is provided for the common memory, and the common memory is frequently accessed for the number of identifiers every time 1 ATM cell is received.
Next, FIG. 2 shows a measurement example of a cell transmission rate in the sliding window system. According to this system, in the sliding window system, a window is slid continuously, compared with the case of the fixed window system. Therefore, it could be understood that the number of ATM cells could be correctly counted without influence due to the initial window position.
However, the transmission rate measurement is performed at the same time for a lot of ATM cells having different cell identification data (cell header). In this time, all windows are made to slide at a time, and the reading operation of the count value for each window must be performed at a time. Therefore, the same problem as the case of the fixed window system is caused. In this way, although the correct measurement is possible, the circuit structure and circuit operation become more complicated. For this reason, this system has a larger problem than the above system.
The leaky bucket system is not especially illustrated. Generally, a counter is used which is incremented by xe2x80x9c1xe2x80x9d each time an ATM cell is received and decremented by xe2x80x9c1xe2x80x9d for every predetermined time interval. When the count of the counter is balanced, the transmission rate is equal to a defined or predicted rate. When the reception of the cells continues, the counter is counted up. When the count value exceeds a constant value, it is thought of as the policing violation. In this case, the reception cell is subjected to the cell discarding process or the tagging process.
In case of the leaky bucket system, there is a problem in the following point. That is, a lot of up and down counters must be arranged or a common memory must be frequently accessed, when transmission rate measurement is performed at the same time to a lot of ATM cells having different cell identification data (cell headers), like the case of the fixed window system and the sliding window system. Thus, a fundamental problem as this point is left without being solved.
On the other hand, the time comparing system is an influential method, like the cell count method. A reception time (time stamp) is measured for every cell reception in some way and is stored for every cell. A time until the predetermined number of ATM cells is received is compared with a predetermined time. Or, a cell reception time interval is compared with a predetermined value for every ATM cell to determine the existence or non-existence of the policing violation. FIG. 3 shows a policing example of the ATM cells in the reception time comparing system. In this reception time comparing system, a reception time value of an ATM cell is independently stored in the reception time memory for every cell identifier (cell header). In case of the policing value=3, the reception time of a current ATM cell is compared with the reception time of a cell which has been received before 3 cells to determine the time difference of reception time each time the current ATM cell is received. When the determined time difference is smaller than the window size of a predetermined value, it assumes that the current ATM cell is a policing violation cell. This is because the time difference smaller than the window size means that ATM cells have been already received more than the policing value in the window size time. On contrary, in case of that the time difference is equal to or larger than the window size, the current reception ATM cell is not a policing violation cell, because the reception time interval of the cell which is equal to or larger than the window size. Thus, in case of the reception time comparing system, it is necessary to provide the reception time memory independent for every ATM cell. However, it is the reception time memory that is accessed when an ATM cell corresponding to the reception time memory is received. The other reception time memories are not accessed. Therefore, it becomes theoretically possible for the number of times of access to the memory to be decreased greatly even if the memory becomes large in capacity.
However, one of the problems of the existing reception time comparing system is in that it needs a reception time memory independent for every cell identification data. Another problem is in how a reception time can be correctly known. The count value of the counter is generally used to get a reception. However, there is a problem in how a case where the counter overflows many times because the reception interval is long should be distinguished from another case. On other hand, to overcome this point, use of many sets of counters and complicated flag control is tried. However, the problem is not yet completely solved.
Moreover, in the cell reception interval comparing system, a reception time interval between the cells having the same cell identification data is measured. If the measured cell reception time interval is shorter than a predetermined time interval, the reception cell is determined to be a policing violation cell. Although being not illustrated, this system is superior to the above mentioned reception time comparing method in that it is not necessary for the reception time memory independent for every cell identification data. However, because this system determines based on only the reception time interval, it lacks flexibility to the user traffic.
Also, there is the problem in means for correctly measuring the reception time of a cell, like the cell reception time comparing system. However, it can be used in a range, in which the cell time interval is relatively short, so that the counter does not overflow.
However, in any case, there is a problem in that there are many constraints and the above mentioned systems cannot be easily used.
In addition to the above, a policing circuit is described in Japanese Laid Open Patent Application. (JP-A-Heisei 6-311178). In this reference, there are provided a cell detector 1, a self-running type counter 6, a stamp memory section 5, a parameter memory 3, and a determining section 2. The cell detector 1 detects a user identification information of a reception cell. The counter 6 counts to a predetermined value T0. The stamp memory section 5 stores the reception time of the cell and the value of the counter 6 in correspondence to the identification information. The parameter memory 3 stores a predetermined monitor time and the allowable number of reception cells as a cell reception violation parameter. The determining section 2 determines the existence or non-existence of cell reception violation based on the reception time of the cell, the monitor time and the allowable number of reception cells for every user. The stamp memory section 5 is divided into blocks for every user and circulatively used based on the allowable number of reception cells.
A traffic monitoring apparatus is described in Japanese Laid Open Patent Application (JP-A-Heisei 8-213987). In this reference, there are provided, as declaration parameters, a short-term monitor parameter for monitoring a case that cells are sent out with a highest rate, and a middle-term monitor parameter for monitoring a case that cells are sent out with an average rate. For the middle-term monitor, the leaky bucket method is used based on a value obtained by converting the middle-term monitor parameter by a parameter converting section 21. For the short-term monitor, a sliding window method is used.
An ATM cell rate measuring apparatus is described in Japanese Laid Open Patent Application. (JP-A-Heisei 8-32591). In this reference, a header information of a cell received in a cell reception buffer 100 is converted into a value by a converting section 1, and then stored in a header information storing section 4. At the same time, a write pointer 3 and each of window size registers of a group 6 are added by an adding section 5 to produce a read address. Then, the header information of each cell corresponding to one end of a sliding window from the header information storing section 4. A cell counter corresponding to the cell is decremented by xe2x80x9c1xe2x80x9d only when the header information of the reception cell is not coincident with each of the read out header information and both are coincident with each other in window size. The cell counter is incremented by xe2x80x9c1xe2x80x9d only when the header information of the reception cell is not coincident with any one of the read out header information.
An ATM policing apparatus is described in Japanese Laid Open Patent Application (JP-A-Heisei 8-331148). In this reference, a counter for policing is decremented by a first value when cells are received in a desired time interval. The counter for policing is decremented by a second value different from the first value when many cells are received for a short time.
A policing apparatus is described in Japanese Laid Open Patent Application (JP-A-Heisei 9-186699). In this reference, one time period of a reference time counter is set longer than 4 times of a maximum value of summations of a cell time interval and a CDV allowable value. The first and second flags f0i and f1i are provided to be alternatively set for every predetermined time corresponding to the maximum value. In the policing determination upon reception of a cell, the first and second flags f0i and f1i are checked. If both of the first and second flags are set, it is determined to be valid, because there is a sufficient cell time interval. Otherwise, the policing determination is performed in detail, considering a cell time interval Ti, the CDV allowable value xcfx84i, and a predicted reception time TATi which has been determined on reception of a previous cell. In this case, the calculation range for the policing determination is within xc2xd of the time period of the reference time counter. Therefore, the correct policing determination can be performed even if the reference time counter counts into a reverse direction from the maximum value to a negative value beyond xe2x80x9c0xe2x80x9d.
The present invention is accomplished to solve the above-mentioned problems. Therefore, an object of the present invention is to provide a policing method in which the number of times of access to a cell data storing table used in a policing determining process can be greatly decreased.
Another object of the present invention is to provide a policing apparatus for the above mentioned method.
Still another object of the present invention is to provide a policing apparatus in which the hardware scale used for the cell data storing table can be made small.
In order to achieve an aspect of the present invention, a policing apparatus includes a cell receiving unit for receiving cells to temporarily store the received cells and for performing a policing violation process to each of the received cells as a reception cell based on a result of policing violation determination to the reception cell. A cell data storing section has a cell data storing table for circularly storing a cell identification data of the reception cell, and a subscriber data storing section has a subscriber data storing table for storing a management data necessary for the policing violation determination, for every cell identification data. A control unit refers to the subscriber data storing table based on the cell identification data of the reception cell each time the reception cell is received to read out the management data, and performs the policing violation determination to the reception cell based on the read out management data and an address pointer value for the reception cell. Also, the control unit outputs the result of the policing violation determination to the cell receiving unit, and stores the cell identification data of the reception cell in the cell data storing table based on the address pointer value.
When the subscriber data storing table includes a window size as a part of the management data, the control unit performs the policing violation determination based on a reference cell address, the window size and the address pointer value, the reference cell address indicating an address of the cell data storing table in which the cell identification data of a reference reception cell is stored.
In this case, the control unit may determine that the reception cell is a policing violation cell, when a circulative address difference between the address pointer value and the reference cell address is smaller than the window size. Also, the control unit may determine that the reception cell is a normal cell, when the circulative address difference between the address pointer value and the reference cell address is equal to or larger than the window size.
In such a case, the control unit updates the reference cell address to an address of the cell data storing table in which the cell identification data of a next reception cell to the reference reception cell having the same cell identification data is stored, when the reception cell is the normal cell. The control unit may hold the reference cell address without updating of the reference cell address, when the reception cell is the policing violation cell.
The subscriber data storing table may include the reference cell address in addition to the window size as a part of the management data.
The cell data storing table stores a chain data in addition to the cell identification data to form a chain of the reception cells having the same cell identification data. In this case, the control unit stores as the chain data of an immediately previous reception cell to a current reception cell having the same cell identification data, an address of the cell data storing table in which the cell identification data of the current reception cell is stored, when the current reception cell is received by the cell receiving unit. Also, the control unit selectively updates the reference cell address to an address of the cell data storing table in which the cell identification data of a next reception cell to the reference reception cell having the same cell identification data is stored, using the chain data of the reference reception cell, in accordance with the result of the policing violation determination.
The control unit may determine that the reception cell is a normal cell, without performing the policing violation determination, when a number of reception cells having the same cell identification data is smaller than a policing value.
When the subscriber data storing table may store an average cell rate data indicating a number of reception cells in an average window, the control unit may update the average cell rate data each time the reception cell is received.
Also, when the subscriber data storing table stores a policing violation processing data, the control unit may perform a process designated by the policing violation processing data to the reception cell when the reception cell is determined to be a policing violation cell.
In addition, when the subscriber data storing table stores another management data, the control unit refers to the subscriber data storing table based on the cell identification data of the reception cell each time the reception cell is received to read out the management data and the other management data, performs the policing violation determination to the reception cell based on the management data, the other management data and an address pointer value for the reception cell, outputs the result of the policing violation determination to the cell receiving unit, and stores the cell identification data of the reception cell in the cell data storing table based on the address pointer value.
In order to achieve another aspect of the present invention, a policing method includes the steps of:
receiving a reception cell to temporarily store;
referring to a subscriber data storing table based on the cell identification data of the reception cell in response to the reception of the reception cell to read out the management data, a subscriber data storing table storing a management data necessary for a policing violation determination, for every cell identification data;
performing the policing violation determination to the reception cell based on the read out management data and an address pointer value for the reception cell;
circulatively storing the cell identification data of the reception cell in a cell data storing table based on the address pointer value; and
performing a policing violation process to the reception cell based on the result of policing violation determination to the reception cell.
When the subscriber data storing table includes a window size as a part of the management data, the step of performing the policing violation determination includes performing the policing violation determination based on a reference cell address, the window size and the address pointer value, the reference cell address indicating an address of the cell data storing table in which the cell identification data of a reference reception cell is stored.
The step of performing the policing violation determination may include:
determining that the reception cell is a policing violation cell, when a circulative address difference between the address pointer value and the reference cell address is smaller than the window size; and
determining that the reception cell is a normal cell, when the circulative address difference between the address pointer value and the reference cell address is equal to or larger than the window size.
In this case, the step of performing the policing violation determination may include:
updating the reference cell address to an address of the cell data storing table in which the cell identification data of a next reception cell to the reference reception cell having the same cell identification data is stored, when the reception cell is the normal cell; and
holding the reference cell address without updating of the reference cell address, when the reception cell is the policing violation cell.
The subscriber data storing table may include the reference cell address in addition to the window size as a part of the management data.
Also, the cell data storing table may store a chain data in addition to the cell identification data to form a chain of the reception cells having the same cell identification data.
In this case, the receiving step may include storing as the chain data of an immediately previous reception cell to a current reception cell having the same cell identification data, an address of the cell data storing table in which the cell identification data of the current reception cell is stored, when the current reception cell is received.
The step of performing the policing violation determination may include selectively updating the reference cell address to an address of the cell data storing table in which the cell identification data of a next reception cell to the reference reception cell having the same cell identification data is stored, using the chain data of the reference reception cell, in accordance with the result of the policing violation determination.
Also, the step of performing the policing violation determination may include determining that the reception cell is a normal cell, without performing the policing violation determination, when a number of reception cells having the same cell identification data is smaller than a policing value.
Also, when the subscriber data storing table stores an average cell rate data indicating a number of reception cells in an average window, the policing method further includes the step of updating the average cell rate data each time the reception cell is received.
In addition, when the subscriber data storing table stores a policing violation processing data, the policing method may further include updating includes performing a process designated by the policing violation processing data to the reception cell when the reception cell is determined to be a policing violation cell.
When the subscriber data storing table stores another management data, the step of performing a policing violation determination may include:
referring to the subscriber data storing table based on the cell identification data of the reception cell each time the reception cell is received to read out the management data and the other management data; and
performing the policing violation determination to the reception cell based on the management data, the other management data and an address pointer value for the reception cell.